﻿#include "FITKAbaOutputVariables.h"
#include <QMetaEnum>
#include <QDebug>


namespace Interface
{
    QStringList FITKAbaOutputVariable::getVariableParents(const QString& var)
    {
        QMetaEnum m = QMetaEnum::fromType<FITKAbaOutputVariable::OutputVariable>();
        bool ok{false};
        int value = m.keyToValue(var.toLatin1().data(),&ok);
        QStringList parents{};
        if (!ok)
            return parents;
        FITKAbaOutputVariable::OutputVariable v = static_cast<FITKAbaOutputVariable::OutputVariable>(value);
        if (VaraiableParent.contains(v))
        {
            QString p = VaraiableParent.value(v);
            parents.append(p);
            int pValue = m.keyToValue(p.toLatin1().data(), &ok);
            if (ok)
            {
                FITKAbaOutputVariable::OutputVariable pv = static_cast<FITKAbaOutputVariable::OutputVariable>(pValue);
                if (VaraiableParent.contains(pv))
                    parents.append(VaraiableParent.value(pv));
            }else
            {
                if (MiddleLabels.contains(p))
                    parents.append(MiddleLabels.value(p));
            }
        }
        return parents;
    }

    QString FITKAbaOutputVariable::getVariableDescription(const QString& var)
    {
        QMetaEnum m = QMetaEnum::fromType<FITKAbaOutputVariable::OutputVariable>();
        bool ok{false};
        int value = m.keyToValue(var.toLatin1().data(), &ok);
        if (!ok)
            return "";
        FITKAbaOutputVariable::OutputVariable v = static_cast<FITKAbaOutputVariable::OutputVariable>(value);
        if (VariableDescription.contains(v))
            return VariableDescription.value(v);
        return "";
    }

    const QMap<FITKAbaOutputVariable::OutputVariable, QString> FITKAbaOutputVariable::VaraiableParent{
        {FITKAbaOutputVariable::OutputVariable::A, "Dispalcement/Velocity/Acceleration"},
        {FITKAbaOutputVariable::OutputVariable::AR,"Dispalcement/Velocity/Acceleration"},
        {FITKAbaOutputVariable::OutputVariable::AT,"Dispalcement/Velocity/Acceleration"},
        {FITKAbaOutputVariable::OutputVariable::CF,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::COORD,"Volume/Thickness/Coordinates"},
        {FITKAbaOutputVariable::OutputVariable::PABS,"Acoustics"},
        {FITKAbaOutputVariable::OutputVariable::POR,"Acoustics"},
        {FITKAbaOutputVariable::OutputVariable::RF,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::RM,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::RT,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::TIEADJUST,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::TIEDSTATUS,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::U,"Dispalcement/Velocity/Acceleration"},
        {FITKAbaOutputVariable::OutputVariable::UR,"Dispalcement/Velocity/Acceleration"},
        {FITKAbaOutputVariable::OutputVariable::UT,"Dispalcement/Velocity/Acceleration"},
        {FITKAbaOutputVariable::OutputVariable::V,"Dispalcement/Velocity/Acceleration"},
        {FITKAbaOutputVariable::OutputVariable::VR,"Dispalcement/Velocity/Acceleration"},
        {FITKAbaOutputVariable::OutputVariable::VT,"Dispalcement/Velocity/Acceleration"},
        {FITKAbaOutputVariable::OutputVariable::A1,"A"},
        {FITKAbaOutputVariable::OutputVariable::A2,"A"},
        {FITKAbaOutputVariable::OutputVariable::A3,"A"},
        {FITKAbaOutputVariable::OutputVariable::AR1,"A"},
        {FITKAbaOutputVariable::OutputVariable::AR2,"A"},
        {FITKAbaOutputVariable::OutputVariable::AR3,"A"},
        {FITKAbaOutputVariable::OutputVariable::CF1,"CF"},
        {FITKAbaOutputVariable::OutputVariable::CF2,"CF"},
        {FITKAbaOutputVariable::OutputVariable::CF3,"CF"},
        {FITKAbaOutputVariable::OutputVariable::CM1,"CF"},
        {FITKAbaOutputVariable::OutputVariable::CM2,"CF"},
        {FITKAbaOutputVariable::OutputVariable::CM3,"CF"},
        {FITKAbaOutputVariable::OutputVariable::RF1,"CF"},
        {FITKAbaOutputVariable::OutputVariable::RF2,"CF"},
        {FITKAbaOutputVariable::OutputVariable::RF3,"CF"},
        {FITKAbaOutputVariable::OutputVariable::RM1,"CF"},
        {FITKAbaOutputVariable::OutputVariable::RM2,"CF"},
        {FITKAbaOutputVariable::OutputVariable::RM3,"CF"},
        {FITKAbaOutputVariable::OutputVariable::RWM,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::U1,"U"},
        {FITKAbaOutputVariable::OutputVariable::U2,"U"},
        {FITKAbaOutputVariable::OutputVariable::U3,"U"},
        {FITKAbaOutputVariable::OutputVariable::UR1,"U"},
        {FITKAbaOutputVariable::OutputVariable::UR2,"U"},
        {FITKAbaOutputVariable::OutputVariable::UR3,"U"},
        {FITKAbaOutputVariable::OutputVariable::V1,"V"},
        {FITKAbaOutputVariable::OutputVariable::V2,"V"},
        {FITKAbaOutputVariable::OutputVariable::V3,"V"},
        {FITKAbaOutputVariable::OutputVariable::VR1,"V"},
        {FITKAbaOutputVariable::OutputVariable::VR2,"V"},
        {FITKAbaOutputVariable::OutputVariable::VR3,"V"},
        {FITKAbaOutputVariable::OutputVariable::BF,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::BURNF,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::CDERF,"Connector"},
        {FITKAbaOutputVariable::OutputVariable::CDERU,"Connector"},
        {FITKAbaOutputVariable::OutputVariable::CDMG,"Connector"},
        {FITKAbaOutputVariable::OutputVariable::CEF,"Connector"},
        {FITKAbaOutputVariable::OutputVariable::CTF,"Connector"},
        {FITKAbaOutputVariable::OutputVariable::CTF1,"CTF"},
        {FITKAbaOutputVariable::OutputVariable::CTF2,"CTF"},
        {FITKAbaOutputVariable::OutputVariable::CTF3,"CTF"},
        {FITKAbaOutputVariable::OutputVariable::CTM1,"CTF"},
        {FITKAbaOutputVariable::OutputVariable::CTM2,"CTF"},
        {FITKAbaOutputVariable::OutputVariable::CTM3,"CTF"},
        {FITKAbaOutputVariable::OutputVariable::CU,"Connector"},
        {FITKAbaOutputVariable::OutputVariable::CU1,"CU"},
        {FITKAbaOutputVariable::OutputVariable::CU2,"CU"},
        {FITKAbaOutputVariable::OutputVariable::CU3,"CU"},
        {FITKAbaOutputVariable::OutputVariable::CUR1,"CU"},
        {FITKAbaOutputVariable::OutputVariable::CUR2,"CU"},
        {FITKAbaOutputVariable::OutputVariable::CUR3,"CU"},
        {FITKAbaOutputVariable::OutputVariable::CUE,"Connector"},
        {FITKAbaOutputVariable::OutputVariable::CUF,"Connector"},
        {FITKAbaOutputVariable::OutputVariable::CUP,"Connector"},
        {FITKAbaOutputVariable::OutputVariable::CUPEQ,"Connector"},
        {FITKAbaOutputVariable::OutputVariable::CVF,"Connector"},
        {FITKAbaOutputVariable::OutputVariable::CFAILURE,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::CTSHR,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::DAMAGEC,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::DAMAGEFC,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::DAMAGEFT,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::DAMAGEMC,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::DAMAGEMT,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::DAMAGESHR,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::DAMAGET,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::DBURNF,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::DENSITY,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::DENSITYVAVG,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::DMICRT,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::DMICRTMAX,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::E,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::EACTIVE,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::EDCDEN,"Energy"},
        {FITKAbaOutputVariable::OutputVariable::EDMICRTMAX,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::EDT,"Energy"},
        {FITKAbaOutputVariable::OutputVariable::EEQUT,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::EFABRIC,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::ELEDEN,"Energy"},
        {FITKAbaOutputVariable::OutputVariable::ELEN,"Energy"},
        {FITKAbaOutputVariable::OutputVariable::EMSF,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::ENER,"Energy"},
        {FITKAbaOutputVariable::OutputVariable::ER,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::ERPRATIO,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::ERV,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::ESDV,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::ESOL,"Volume/Thickness/Coordinates"},
        {FITKAbaOutputVariable::OutputVariable::EVF,"Volume/Thickness/Coordinates"},
        {FITKAbaOutputVariable::OutputVariable::EVOL,"Volume/Thickness/Coordinates"},
        {FITKAbaOutputVariable::OutputVariable::FV,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::GRAV,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::HP,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::HSNFCCRT,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::HSNFTCRT,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::HSNMCCRT,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::HSNMTCRT,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::IVOL,"Volume/Thickness/Coordinates"},
        {FITKAbaOutputVariable::OutputVariable::IWCONWEP,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::LE,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::MFL,"Porous media/fluids"},
        {FITKAbaOutputVariable::OutputVariable::MFLT,"Porous media/fluids"},
        {FITKAbaOutputVariable::OutputVariable::MFR,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::MISES,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::MISESMAX,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::MISESONLY,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::MVF,"Volume Fraction"},
        {FITKAbaOutputVariable::OutputVariable::NE,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::NEEQ,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::NEEQR,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::NFORC,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::NFORCSO,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::P,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::PE,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::PEEQ,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::PEEQMAX,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::PEEQT,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::PEEQVAVG,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::PEMAG,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::PEQC,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::PEVAVG,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::PRESSONLY,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::PS,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::RD,"Porous media/fluids"},
        {FITKAbaOutputVariable::OutputVariable::RHOE,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::RHOP,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::S,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::SBF,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::SDEG,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::SDV,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::SE,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::SEQUT,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::SF,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::SFABRIC,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::SHRRATIO,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::SSAVG,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::STAGP,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::STATUS,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::STH,"Volume/Thickness/Coordinates"},
        {FITKAbaOutputVariable::OutputVariable::SVAVG,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::SVOL,"Volume/Thickness/Coordinates"},
        {FITKAbaOutputVariable::OutputVariable::TE,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::TEEQ,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::TEMP,"Thermal"},
        {FITKAbaOutputVariable::OutputVariable::TEMPMAVG,"Thermal"},
        {FITKAbaOutputVariable::OutputVariable::TEVOL,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::TRIAX,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::TRNOR,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::TRSHR,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::TSHR,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::UVARM,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::VE,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::VEEQ,"Strains"},
        {FITKAbaOutputVariable::OutputVariable::VP,"Forces/Reactions"},
        {FITKAbaOutputVariable::OutputVariable::VS,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::VVF,"Porous media/fluids"},
        {FITKAbaOutputVariable::OutputVariable::VVFG,"Porous media/fluids"},
        {FITKAbaOutputVariable::OutputVariable::VVFN,"Porous media/fluids"},
        {FITKAbaOutputVariable::OutputVariable::YIELDPOT,"Stresses"},
        {FITKAbaOutputVariable::OutputVariable::CTSHR13,"CTSHR"},
        {FITKAbaOutputVariable::OutputVariable::CTSHR23,"CTSHR"},
        {FITKAbaOutputVariable::OutputVariable::INV3,"S"},
        {FITKAbaOutputVariable::OutputVariable::PRESS,"S"},
        {FITKAbaOutputVariable::OutputVariable::PS11,"PS"},
        {FITKAbaOutputVariable::OutputVariable::PS12,"PS"},
        {FITKAbaOutputVariable::OutputVariable::PS13,"PS"},
        {FITKAbaOutputVariable::OutputVariable::PS22,"PS"},
        {FITKAbaOutputVariable::OutputVariable::PS23,"PS"},
        {FITKAbaOutputVariable::OutputVariable::PS33,"PS"},
        {FITKAbaOutputVariable::OutputVariable::S11,"S"},
        {FITKAbaOutputVariable::OutputVariable::S12,"S"},
        {FITKAbaOutputVariable::OutputVariable::S13,"S"},
        {FITKAbaOutputVariable::OutputVariable::S22,"S"},
        {FITKAbaOutputVariable::OutputVariable::S23,"S"},
        {FITKAbaOutputVariable::OutputVariable::S33,"S"},
        {FITKAbaOutputVariable::OutputVariable::SFABRIC11,"SFABRIC"},
        {FITKAbaOutputVariable::OutputVariable::SFABRIC12,"SFABRIC"},
        {FITKAbaOutputVariable::OutputVariable::SFABRIC13,"SFABRIC"},
        {FITKAbaOutputVariable::OutputVariable::SFABRIC22,"SFABRIC"},
        {FITKAbaOutputVariable::OutputVariable::SFABRIC23,"SFABRIC"},
        {FITKAbaOutputVariable::OutputVariable::SFABRIC33,"SFABRIC"},
        {FITKAbaOutputVariable::OutputVariable::SP,"S"},
        {FITKAbaOutputVariable::OutputVariable::SSAVG1,"SSAVG"},
        {FITKAbaOutputVariable::OutputVariable::SSAVG2,"SSAVG"},
        {FITKAbaOutputVariable::OutputVariable::SSAVG3,"SSAVG"},
        {FITKAbaOutputVariable::OutputVariable::SSAVG4,"SSAVG"},
        {FITKAbaOutputVariable::OutputVariable::SSAVG5,"SSAVG"},
        {FITKAbaOutputVariable::OutputVariable::SSAVG6,"SSAVG"},
        {FITKAbaOutputVariable::OutputVariable::TRESC,"S"},
        {FITKAbaOutputVariable::OutputVariable::TSHR13,"TSHR"},
        {FITKAbaOutputVariable::OutputVariable::TSHR23,"TSHR"},
        {FITKAbaOutputVariable::OutputVariable::VS11,"VS"},
        {FITKAbaOutputVariable::OutputVariable::VS12,"VS"},
        {FITKAbaOutputVariable::OutputVariable::VS13,"VS"},
        {FITKAbaOutputVariable::OutputVariable::VS22,"VS"},
        {FITKAbaOutputVariable::OutputVariable::VS23,"VS"},
        {FITKAbaOutputVariable::OutputVariable::VS33,"VS"},
        {FITKAbaOutputVariable::BICURV,"SE"},
        {FITKAbaOutputVariable::E11,"E"},
        {FITKAbaOutputVariable::E12,"E"},
        {FITKAbaOutputVariable::E13,"E"},
        {FITKAbaOutputVariable::E22,"E"},
        {FITKAbaOutputVariable::E23,"E"},
        {FITKAbaOutputVariable::E33,"E"},
        {FITKAbaOutputVariable::EFABRIC11,"EFABRIC"},
        {FITKAbaOutputVariable::EFABRIC12,"EFABRIC"},
        {FITKAbaOutputVariable::EFABRIC13,"EFABRIC"},
        {FITKAbaOutputVariable::EFABRIC22,"EFABRIC"},
        {FITKAbaOutputVariable::EFABRIC23,"EFABRIC"},
        {FITKAbaOutputVariable::EFABRIC33,"EFABRIC"},
        {FITKAbaOutputVariable::ER11,"ER"},
        {FITKAbaOutputVariable::ER12,"ER"},
        {FITKAbaOutputVariable::ER13,"ER"},
        {FITKAbaOutputVariable::ER22,"ER"},
        {FITKAbaOutputVariable::ER23,"ER"},
        {FITKAbaOutputVariable::ER33,"ER"},
        {FITKAbaOutputVariable::LE11,"LE"},
        {FITKAbaOutputVariable::LE12,"LE"},
        {FITKAbaOutputVariable::LE13,"LE"},
        {FITKAbaOutputVariable::LE22,"LE"},
        {FITKAbaOutputVariable::LE23,"LE"},
        {FITKAbaOutputVariable::LE33,"LE"},
        {FITKAbaOutputVariable::LEP,"LE"},
        {FITKAbaOutputVariable::NE11,"NE"},
        {FITKAbaOutputVariable::NE12,"NE"},
        {FITKAbaOutputVariable::NE13,"NE"},
        {FITKAbaOutputVariable::NE22,"NE"},
        {FITKAbaOutputVariable::NE23,"NE"},
        {FITKAbaOutputVariable::NE33,"NE"},
        {FITKAbaOutputVariable::NEP,"NE"},
        {FITKAbaOutputVariable::PE11,"PE"},
        {FITKAbaOutputVariable::PE12,"PE"},
        {FITKAbaOutputVariable::PE13,"PE"},
        {FITKAbaOutputVariable::PE22,"PE"},
        {FITKAbaOutputVariable::PE23,"PE"},
        {FITKAbaOutputVariable::PE33,"PE"},
        {FITKAbaOutputVariable::PEP,"PE"},
        {FITKAbaOutputVariable::PEQC1,"PEQC"},
        {FITKAbaOutputVariable::PEQC2,"PEQC"},
        {FITKAbaOutputVariable::PEQC3,"PEQC"},
        {FITKAbaOutputVariable::PEQC4,"PEQC"},
        {FITKAbaOutputVariable::SE1,"SE"},
        {FITKAbaOutputVariable::SE2,"SE"},
        {FITKAbaOutputVariable::SE3,"SE"},
        {FITKAbaOutputVariable::SF1,"SF"},
        {FITKAbaOutputVariable::SF2,"SF"},
        {FITKAbaOutputVariable::SF3,"SF"},
        {FITKAbaOutputVariable::SK1,"SE"},
        {FITKAbaOutputVariable::SK2,"SE"},
        {FITKAbaOutputVariable::SK3,"SE"},
        {FITKAbaOutputVariable::SM1,"SF"},
        {FITKAbaOutputVariable::SM2,"SF"},
        {FITKAbaOutputVariable::SM3,"SF"},
        {FITKAbaOutputVariable::TE11,"TE"},
        {FITKAbaOutputVariable::TE12,"TE"},
        {FITKAbaOutputVariable::TE13,"TE"},
        {FITKAbaOutputVariable::TE22,"TE"},
        {FITKAbaOutputVariable::TE23,"TE"},
        {FITKAbaOutputVariable::TE33,"TE"},
        {FITKAbaOutputVariable::VE11,"VE"},
        {FITKAbaOutputVariable::VE12,"VE"},
        {FITKAbaOutputVariable::VE13,"VE"},
        {FITKAbaOutputVariable::VE22,"VE"},
        {FITKAbaOutputVariable::VE23,"VE"},
        {FITKAbaOutputVariable::VE33,"VE"},
        {FITKAbaOutputVariable::OutputVariable::CDISP,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::CFORCE,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::CSDMG,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::CSLIPR,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::CSMAXSCRT,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::CSMAXUCRT,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::CSQUADSCRT,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::CSQUADUCRT,"Failure/Fracture"},
        {FITKAbaOutputVariable::OutputVariable::CSTRESS,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::CTANDIR,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::CTHICK,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::FSLIP,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::FSLIPR,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::PPRESS,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::CAREA,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::CFN1,"CFN"},
        {FITKAbaOutputVariable::OutputVariable::CFN2,"CFN"},
        {FITKAbaOutputVariable::OutputVariable::CFN3,"CFN"},
        {FITKAbaOutputVariable::OutputVariable::CFNM,"CFN"},
        {FITKAbaOutputVariable::OutputVariable::CFS1,"CFS"},
        {FITKAbaOutputVariable::OutputVariable::CFS2,"CFS"},
        {FITKAbaOutputVariable::OutputVariable::CFS3,"CFS"},
        {FITKAbaOutputVariable::OutputVariable::CFSM,"CFS"},
        {FITKAbaOutputVariable::OutputVariable::CFT1,"CFT"},
        {FITKAbaOutputVariable::OutputVariable::CFT2,"CFT"},
        {FITKAbaOutputVariable::OutputVariable::CFT3,"CFT"},
        {FITKAbaOutputVariable::OutputVariable::CFTM,"CFT"},
        {FITKAbaOutputVariable::OutputVariable::CICPS,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::CMN1,"CFN"},
        {FITKAbaOutputVariable::OutputVariable::CMN2,"CFN"},
        {FITKAbaOutputVariable::OutputVariable::CMN3,"CFN"},
        {FITKAbaOutputVariable::OutputVariable::CMNM,"CFN"},
        {FITKAbaOutputVariable::OutputVariable::CMS1,"CMS"},
        {FITKAbaOutputVariable::OutputVariable::CMS2,"CMS"},
        {FITKAbaOutputVariable::OutputVariable::CMS3,"CMS"},
        {FITKAbaOutputVariable::OutputVariable::CMSM,"CMS"},
        {FITKAbaOutputVariable::OutputVariable::CMT1,"CMT"},
        {FITKAbaOutputVariable::OutputVariable::CMT2,"CMT"},
        {FITKAbaOutputVariable::OutputVariable::CMT3,"CMT"},
        {FITKAbaOutputVariable::OutputVariable::CMTM,"CMT"},
        {FITKAbaOutputVariable::OutputVariable::CTRQ,"Contact"},
        {FITKAbaOutputVariable::OutputVariable::XN1,"XN"},
        {FITKAbaOutputVariable::OutputVariable::XN2,"XN"},
        {FITKAbaOutputVariable::OutputVariable::XN3,"XN"},
        {FITKAbaOutputVariable::OutputVariable::XS1,"XS"},
        {FITKAbaOutputVariable::OutputVariable::XS2,"XS"},
        {FITKAbaOutputVariable::OutputVariable::XS3,"XS"},
        {FITKAbaOutputVariable::OutputVariable::XT1,"XT"},
        {FITKAbaOutputVariable::OutputVariable::XT2,"XT"},
        {FITKAbaOutputVariable::OutputVariable::XT3,"XT"},
        {FITKAbaOutputVariable::OutputVariable::ALLAE, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLCD, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLCW, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLDC, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLDMD, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLFD, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLIE, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLKE, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLMW, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLPD, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLPW, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLSE, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLVD, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLWK, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ALLEE, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::ETOTAL, "ALLEN"},
        {FITKAbaOutputVariable::OutputVariable::DT,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::DMASS,"State/Field/User/Time"},
        {FITKAbaOutputVariable::OutputVariable::ACOM1,"ACOM"},
        {FITKAbaOutputVariable::OutputVariable::ACOM2,"ACOM"},
        {FITKAbaOutputVariable::OutputVariable::ACOM3,"ACOM"},
        {FITKAbaOutputVariable::OutputVariable::UCOM1,"UCOM"},
        {FITKAbaOutputVariable::OutputVariable::UCOM2,"UCOM"},
        {FITKAbaOutputVariable::OutputVariable::UCOM3,"UCOM"},
        {FITKAbaOutputVariable::OutputVariable::VCOM1,"VCOM"},
        {FITKAbaOutputVariable::OutputVariable::VCOM2,"VCOM"},
        {FITKAbaOutputVariable::OutputVariable::VCOM3,"VCOM"},
        {FITKAbaOutputVariable::OutputVariable::IRA1, "IRA"   },
        {FITKAbaOutputVariable::OutputVariable::IRA2, "IRA"},
        {FITKAbaOutputVariable::OutputVariable::IRA3, "IRA"},
        {FITKAbaOutputVariable::OutputVariable::IRAR1,"IRA"},
        {FITKAbaOutputVariable::OutputVariable::IRAR2,"IRA"},
        {FITKAbaOutputVariable::OutputVariable::IRAR3,"IRA"},
        {FITKAbaOutputVariable::OutputVariable::IRF1, "IRF"},
        {FITKAbaOutputVariable::OutputVariable::IRF2, "IRF"},
        {FITKAbaOutputVariable::OutputVariable::IRF3, "IRF"},
        {FITKAbaOutputVariable::OutputVariable::IRM1, "IRF"},
        {FITKAbaOutputVariable::OutputVariable::IRM2, "IRF"},
        {FITKAbaOutputVariable::OutputVariable::IRM3, "IRF"},
        {FITKAbaOutputVariable::OutputVariable::IRMASS,"Volume/Thickness/Corrdinates"  },
        {FITKAbaOutputVariable::OutputVariable::IRRI11,"IRRI" },
        {FITKAbaOutputVariable::OutputVariable::IRRI12,"IRRI" },
        {FITKAbaOutputVariable::OutputVariable::IRRI13,"IRRI" },
        {FITKAbaOutputVariable::OutputVariable::IRRI22,"IRRI" },
        {FITKAbaOutputVariable::OutputVariable::IRRI23,"IRRI" },
        {FITKAbaOutputVariable::OutputVariable::IRRI33,"IRRI" },
        {FITKAbaOutputVariable::OutputVariable::IRX1, "IRX" },
        {FITKAbaOutputVariable::OutputVariable::IRX2, "IRX" },
        {FITKAbaOutputVariable::OutputVariable::IRX3, "IRX" },
        {FITKAbaOutputVariable::OutputVariable::MASS,  "Mass center kinematics" },
        {FITKAbaOutputVariable::OutputVariable::BDSTAT,"Failure/Fracture" },
        {FITKAbaOutputVariable::OutputVariable::CDSTRESS,"Contact"},
        { FITKAbaOutputVariable::OutputVariable::CRSTS11,"CRSTS" },
        {FITKAbaOutputVariable::OutputVariable::CRSTS12,"CRSTS" },
        {FITKAbaOutputVariable::OutputVariable::CRSTS13,"CRSTS" },
        {FITKAbaOutputVariable::OutputVariable::DBS11,"DBS"},
        {FITKAbaOutputVariable::OutputVariable::DBS12,"DBS"},
        {FITKAbaOutputVariable::OutputVariable::DBSF,"Failure/Fracture" },
        {FITKAbaOutputVariable::OutputVariable::DBT,"Failure/Fracture" },
    };

    const QMap<QString, QString> FITKAbaOutputVariable::MiddleLabels{
        {"CFN", "Contact"},
        {"CFS", "Contact"},
        {"CFT", "Contact"},
        {"CMN", "Contact"},
        {"CMS", "Contact"},
        {"CMT", "Contact"},
        {"XN", "Contact"},
        {"XS", "Contact"},
        {"XT", "Contact"},
        {"DBS", "Contact"},
        {"ALLEN", "Energy"},
        {"IRA", "Dispalcement/Velocity/Acceleration"},
        {"IRF", "Forces/Reactions"},
    {"IRX","Volume/Thickness/Corrdinates"},
    {"IRRI","Volume/Thickness/Corrdinates"}
    };
}
